home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / 173amrg.zip / RSB3173A.MRG < prev    next >
Text File  |  1990-08-26  |  39KB  |  906 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against D:\172B\RBBSSUB3.BAS to produce RBBSSUB3.BAS
  3. * D:\172B\RBBSSUB3.BAS:  Date 2-11-1990  Size 114935 bytes
  4. * ------------[ Created 08-26-1990 11:30:19 ]------------
  5. * REPLACING old line(s) by new
  6. ' $linesize:132
  7. * ------[ first line different ]------
  8. ' $title: 'RBBSSUB3.BAS 17.3A, Copyright 1986 - 90 by D. Thomas Mack'  ' DA081003
  9. '  Copyright 1990 by D. Thomas Mack, all rights reserved.
  10. '  Name ...............: RBBSSUB3.BAS
  11. '  First Released .....: February 11, 1990
  12. '  Subsequent Releases.: August 26, 1990
  13. '  Copyright ..........: 1986 - 1990
  14. '  Purpose.............: The Remote Bulletin Board System for the IBM PC,
  15. '     RBBS-PC.BAS utilizes a lot of common subroutines.  Those that do not
  16. '     require error trapping are incorporated within RBBSSUB 2-5 as
  17. '     separately callable subroutines in order to free up as much
  18. '     code as possible within the 64K code segment used by RBBS-PC.BAS.
  19. '  Parameters..........: Most parameters are passed via a COMMON statement.
  20. '
  21. ' Subroutine  Line               Function of Subroutine
  22. '   Name     Number
  23. '  AllCaps         58050 Convert a string to all upper case characters
  24. '  AMorPM          41498 Calculate the current time as AM or PM
  25. '  AskGraphics     43004 Determine users graphic default
  26. '  BadFile         20741 Check for system crash attempt with bad device name
  27. '  Carrier         42000 Test for whether to continue in RBBS
  28. '  CheckRatio      20096 Test upload/download ratio
  29. '  CheckTime       58070 Test to insure that users don't exceed their time
  30. '  CheckCarrier    42005 Checks whether still have carrier
  31. '  CheckNewBul     58110 Check for new bulletins based on their file creation date
  32. '  CheckTimeRemain 41008 Set up to log off if time exceeded
  33. '  CommInfo        44020 Get users baud rate and parity in a string format
  34. '  CountLines      58160 Count categories a file can be classified into
  35. '  CountNewFiles   58150 Check for number of files uploaded after a specific date
  36. '  DelayTime       50495 Wait number of seconds specified before returning
  37. '  DispCall        57001 Display callers file
  38. '  DispTimeRemain  41032 Compute and display time remaining
  39. '  DispUpDir       58165 Display the shared directory of the FMS mng. sys.
  40. '  FileLock        21993 Allow files to be shared among multiple RBBS-PC's
  41. '  FindFKey        30595 Handle local keyboard's function & ZSysop's keys
  42. '  FindLast        58600 Finds last occurence of a string in a string
  43. '  FlushKeys       35000  Completely flush all user input
  44. '  Graphic         43031 Determines if graphic ver of file exists, opens as #2
  45. '  GraphicX        43031 Determines if graphic ver of file exists, any file #
  46. '  HashRBBS        58080 "Hash" to a user's record in the USERS file
  47. '  InitFMS         58162 Initialize the RBBS-PC's File Management System
  48. '  InitIBM         30000 Open/create NetBIOS semaphore file
  49. '  AddCommas       58130 Format commands in the command prompt
  50. '  Library         21105 Provide support for "library" drives
  51. '  LinesInFile     58161 Counts lines in a file
  52. '  LoadNew         58140 Find the latest uploads
  53. '  ModemPut        52070 Write a modem command string to the modem
  54. '  NameCaps        58060 Convert a string to Proper Case (for name output)
  55. '  OpenMsg         30500 Open the messages file as file number 1
  56. '  PageUp          33202 Display user info. on local screen for ZSysop
  57. '  ReadProf        44000 Read user's profile on return from a "door"
  58. '  SaveProf        43068 Save the user's provile when exiting to "doors" or DOS
  59. '  SendName        20293 Send filename via EXEC-PC protocol during autodownload
  60. '  SetOpts         58100 Set correct prompt line for each subsystem
  61. '  SortString      58120 Sort characters in a string
  62. '  TestUser        20310 Check if user's software can do auto downloading
  63. '  TimeRemain      41010 Compute time remaining in minutes
  64. '  UpdtUpload      20705 Updates upload directory file
  65. '  WildFile        20290 Determines whether string matches a pattern
  66. '  XferType        21600 Identify the file transfer protocol
  67. '
  68. '  $INCLUDE: 'RBBS-VAR.BAS'
  69. '
  70. * REPLACING old line(s) by new
  71. 20293 ' $SUBTITLE: 'SendName - send FILENAME using EXEC-PC protocol'
  72. ' $PAGE
  73. '
  74. '  NAME    -- SendName
  75. '
  76. '  INPUTS  --  PARAMETER                    MEANING
  77. '              ZUserIn$()                ARRAY OF FILENAME FOR AUTODOWNLOAD
  78. * ------[ first line different ]------
  79. '              ZAnsIndex                 Index OF FILENAME TO Transfer ' RH021501
  80. '
  81. '  OUTPUTS --  ZAbort                    -1 FOR AN ABORTED ATTEMPT
  82. '
  83. '  PURPOSE -- Send the download filename to user during an autodownload
  84. '
  85.       SUB SendName STATIC
  86. '
  87. '
  88. ' *  Transfer FILENAME TO USER
  89. ' *         PROCESS - SEND USER THE "ALERT" CHARACTER SEQUENCE -- <ESC>OD
  90. ' *                   THEN THIS IS FOLLOWED BY CHARACTER-BY-CHARACTER
  91. ' *                   TRANSMISSION OF THE FILENAME WITH ECHO.  IF ANY OF THE
  92. ' *                   CHARACTERS OF THE FILENMAE ARE GARBLED A SERIES OF
  93. ' *                   <CAN> ARE SENT, OTHERWISE AN <ACK> IS SENT AT
  94. ' *                   COMPLETION AND FILE Transfer BEGINS.
  95. '
  96. '
  97.       ZAbort = ZFalse                    ' RESET ABORT FLAG
  98.       Attempts = 0                       ' RESET COUNT FOR # OF TRANS Attempts
  99. * REPLACING old line(s) by new
  100. 20296 CALL FlushCom(ZWasY$)              ' CLEAR THE COMM BUFFER OF GARBAGE
  101.       IF ZSubParm = -1 THEN _
  102.          EXIT SUB
  103.       CALL PutCom (ZEscape$+"OD")         ' SEND "ALERT" STRING
  104.       IF ZSubParm = -1 THEN _
  105.          EXIT SUB
  106.       IF ZAbort = ZTrue THEN _
  107.          GOTO 20306
  108.       CALL LPrnt("Sending FILENAME -- ",1)
  109.       CALL LPrnt(ZReturnLineFeed$ + CHR$(9),0)
  110.       CALL DelayTime (1)                   ' WAIT 1 SECOND FOR SETUP
  111. '
  112. '               SEND ONE CHARACTER AT A TIME
  113. '
  114. * ------[ first line different ]------
  115.       CALL BreakFileName (ZUserIn$(ZAnsIndex),WasX$,ZOutTxt$,ZWasY$,ZTrue) ' RH021501
  116.       ZOutTxt$ = ZOutTxt$ + ZWasY$ + "=X"                            ' RH021501
  117.       FOR WasX = 1 TO LEN(ZOutTxt$)
  118.          CALL PutCom (MID$(ZOutTxt$,WasX,1))     ' SEND 1 CHARACTER
  119.          IF ZSubParm = -1 THEN _
  120.             EXIT SUB
  121.          IF ZAbort = ZTrue THEN _
  122.             GOTO 20306
  123.          CALL LPrnt(MID$(ZOutTxt$,WasX,1),0)     ' DISPLAY IF NEEDED
  124.          ZDelay! = TIMER + 10            ' SET MAXIMUM TIME TO WAIT FOR Reply
  125.          Char = ZTrue
  126.          WHILE Char = -1
  127.             CALL CheckTime(ZDelay!, TempElapsed!, 1)
  128.             IF TempElapsed! <= 0 THEN _
  129.                GOTO 20300     ' IF ZNo ECHO, CANCEL FILENAME Transfer
  130.             CALL EofComm (Char)
  131.          WEND                 ' JUMP OUT IF CHARACTER IS RECEIVED
  132. * REPLACING old line(s) by new
  133. 20705 ' $SUBTITLE: 'UpdtUpload -- Updates upload directory'
  134. ' $PAGE
  135. '  NAME    -- UpdtUpload
  136. '
  137. '  INPUTS  -- PARAMETER             MEANING
  138. '             ZFileName$
  139. '             ZUpldDir$
  140. '             ZFileNameHold$
  141. '             ZShareIt
  142. '             ZFMSDirectory$
  143. '             ZWasQ!
  144. '             ZSecsUsedSession!
  145. '
  146. '  OUTPUTS -- ZBytesInFile#
  147. '             ZSecsPerSession!
  148. '
  149. '  PURPOSE -- Upon a successful upload, add entry to the upload
  150. '             directory and give any session time credit.
  151. '
  152.       SUB UpdtUpload (ZCategoryName$(1),ZCategoryCode$(1), LinesInDesc) STATIC
  153.       IF ZGetExtDesc THEN _
  154.          GOTO 20723
  155.       GOSUB 20734
  156.       CALL TimeRemain (MinsRemaining)
  157.       IF ZPrivateDoor THEN _
  158.          WasX! = ZUpldTimeFactor! * ZWasQ! _
  159.       ELSE WasX! = ZUpldTimeFactor! * (ZSecsUsedSession! - ZWasQ!)
  160.       CALL BreakFileName (ZFileName$,Pre$,Body$,Ext$,ZFalse)
  161.       WasX$ = ZDiskForDos$ + "T" + Ext$ + ".BAT"
  162.       CALL FindIt (WasX$)
  163.       IF NOT ZOK THEN _
  164.          GOTO 20708
  165. * ------[ first line different ]------
  166.       CALL QuickTPut1 ("Testing if file OK...") : _                  ' KG072601
  167.       CALL ReadDir (2,1)
  168.       IF EOF(2) THEN _
  169.          WasX$ = ZOutTxt$ : _
  170.          ZGSRAra$(1) = ZFileName$ : _
  171.          ZGSRAra$(2) = ZNodeWorkFile$ _
  172.       ELSE WasX$ = WasX$ + " " + _
  173.            ZFileName$ + " " + ZNodeWorkFile$
  174.       CALL ShellExit (WasX$)
  175.       CALL FindIt (ZNodeWorkFile$)
  176.       IF ZOK THEN _
  177.          IF LOF(2) > 2 THEN _
  178.             ZBytesInFile# = 0.0 : _
  179.             WasX$ = "Deleting BAD upload " + ZFileNameHold$ : _
  180.             CALL QuickTPut1 (WasX$) : _
  181.             CALL UpdtCalr (WasX$,2) : _
  182.             CALL KillWork (ZFileName$) : _
  183.             EXIT SUB
  184. * REPLACING old line(s) by new
  185. 20712 ZOK = 0
  186.       CALL CheckNovell (ZOK)
  187.       IF ZOK <> -1 THEN _
  188.          CALL SetSharedAttr (ZFileName$, ZOK) : _
  189.          IF ZOK <> 0 THEN _
  190. * ------[ first line different ]------
  191.             CALL PScrn ("Error setting to shared")                   ' KG072701
  192.       Desc$ = ZUserIn$
  193.       IF NOT ZLimitSearchToFMS THEN _
  194.          IF ZFMSDirectory$ <> ZUpldDir$ THEN _
  195.             IF LEFT$(ZUserIn$,1) = "/" THEN _
  196.                CALL UpdtCalr (ZUserIn$,2) : _
  197.                GOTO 20726_
  198.             ELSE GOTO 20717
  199. * REPLACING old line(s) by new
  200. 20720 ZOutTxt$= "Upload best fits what category (D=default,H=help)"
  201.       ZSubParm = 1
  202.       CALL TGet
  203.       CALL AllCaps (ZUserIn$(1))
  204.       IF ZSubParm = -1 OR ZUserIn$(1) = "D" THEN _
  205. * ------[ first line different ]------
  206.          UCat$ = ZDefaultCatCode$ : _                                ' KG071704
  207.          GOTO 20722
  208.       IF ZWasQ = 0 THEN _
  209.          GOTO 20719
  210.       IF ZUserIn$(1) = "H" OR _
  211.          ZUserIn$(1) = "*" OR _
  212.          ZUserIn$(1) = "?" THEN _
  213.          GOTO 20719
  214.       CALL SearchArray (ZUserIn$(1),ZCategoryName$(),ZNumCategories,Found)
  215.       IF Found > 0 THEN _
  216.          UCat$ = ZCategoryCode$(Found) : _
  217.          IF LEN(UCat$) > 0 AND LEN(UCat$) < 4 AND INSTR(UCat$,",") = 0 THEN _
  218.             GOTO 20722
  219.       UCat$ = ""
  220.       IF NOT ZLimitSearchToFMS THEN _
  221.          StrewTo$ = ZDirPath$ + _
  222.                      ZUserIn$(1) + _
  223.                      "." + _
  224.                      ZDirExtension$ : _
  225.          CALL FindIt (StrewTo$) : _
  226.          IF ZOK THEN _
  227.             GOTO 20722 _
  228.          ELSE CALL WordInFile (ZUpcatHelp$,ZUserIn$(1),ZOK) : _
  229.               IF ZOK THEN _
  230.                  GOTO 20722
  231.       StrewTo$ = ""
  232.       CALL QuickTPut1 ("No such category " + ZUserIn$(1))
  233.       GOTO 20719
  234. * REPLACING old line(s) by new
  235. 20722 IF ZUserSecLevel >= ZAskExtendedDesc AND _
  236.          ZMaxExtendedLines > 0 AND ZSubParm <> -1 THEN _
  237. * ------[ first line different ]------
  238.          ZOutTxt$ = "Add an extended description of " + _            ' DA071701
  239.               ZFileNameHold$ + " ([Y],N)" : _
  240.          ZTurboKey = -ZTurboKeyUser : _
  241.          ZSubParm = 1 : _
  242.          CALL TGet : _
  243.          IF ZSubParm <> -1 THEN _
  244.             IF NOT ZNo THEN _
  245.                ZGetExtDesc = ZTrue : _
  246.                EXIT SUB
  247. * REPLACING old line(s) by new
  248. 20726 ZWasDF$ = " >> uploaded << "
  249.       ZUplds = ZUplds + 1
  250.       ZGlobalUplds = ZGlobalUplds + 1
  251.       ZULBytes! = ZULBytes! + ZBytesInFile#
  252.       ZGlobalULBytes! = ZGlobalULBytes! + ZBytesInFile#
  253.       CALL Muzak (7)
  254.       CALL TimeRemain (MinsRemaining)
  255.       ZTimeCredits! = ZTimeCredits! + WasX!
  256.       ZSecsPerSession! = ZSecsPerSession! + WasX!
  257.       IF ZPrivateDoor THEN _
  258.          WasX! = (WasX! - ZWasQ!) / 60 _
  259.       ELSE WasX! = (WasX! - ZSecsUsedSession! + ZWasQ!)/60.0
  260.       WasX$ = STR$(FIX(WasX!*10.0))
  261.       WasX$ = LEFT$(WasX$,LEN(WasX$)-1) + "." + RIGHT$(WasX$,1)
  262.       IF WasX! > 1 THEN _
  263. * ------[ first line different ]------
  264.          CALL QuickTPut1 ("Increased session time by"+WasX$+" minutes") ' KG072701
  265.       CALL QuickTPut1 ("Thanks for the upload!")
  266.       ZGetExtDesc = ZFalse
  267.       EXIT SUB
  268. * REPLACING old line(s) by new
  269. 21110 IF ZLibDiskChar$ = "0000" THEN _
  270.          ZOutTxt$ = "No Library disk currently selected" _
  271.       ELSE ZOutTxt$ = "Library disk " + _
  272.                 ZLibDiskChar$ + _
  273.                 " selected - " + _
  274.                 DiskTitle$
  275.       CALL QuickTPut1 (ZOutTxt$)
  276.       IF LibDiskArc$ = "" THEN _
  277.          EXIT SUB
  278. * ------[ first line different ]------
  279.       IF INSTR(ZLibArcProgram$,"ARC") THEN _                         ' KG080401
  280.          Extension$ = "ARC" _
  281.       ELSE IF INSTR(ZLibArcProgram$,"ZIP") THEN _                    ' KG080401
  282.          Extension$ = "ZIP" _
  283.       ELSE IF INSTR(ZLibArcProgram$,"LHA") THEN _                    ' KG080401
  284.          Extension$ = "LHZ" _
  285.       ELSE Extension$ = ZDefaultExtension$
  286.       FOR LibDisplayCount = 0 TO LibLoopCount - 1
  287.          IF LibSubdirName$(LibDisplayCount) <> "" THEN _
  288.             CALL QuickTPut1 (LibSubdirName$(LibDisplayCount) + _
  289.                        "." + Extension$ + " ready for transmission!")
  290.       NEXT
  291.       EXIT SUB
  292. * REPLACING old line(s) by new
  293. 21130 IF ZLibType <> 1 THEN _
  294.          EXIT SUB
  295.       CALL SkipLine(1)
  296. * ------[ first line different ]------
  297.       ZOutTxt$ = "The PC-SIG Library file that you are about to"     ' KG080401
  298.       CALL QuickTPut1 (ZOutTxt$)
  299.       ZOutTxt$ = "download can also be ordered as DISK " + _
  300.            ZLibDiskChar$
  301.       CALL QuickTPut1 (ZOutTxt$)
  302.       ZOutTxt$ = "from PC-SIG, 1030D East Duane Ave. Sunnyvale, Ca. 94086"
  303.       CALL QuickTPut (ZOutTxt$,2)
  304.       EXIT SUB
  305. * REPLACING old line(s) by new
  306. 21153 CALL OpenWork (2,Treedir$)
  307.       LibSubdirCount = 0
  308.       WHILE NOT EOF(2)
  309.          LINE INPUT #2, Dirrec$
  310.          IF LEFT$(Dirrec$,1) <> "." THEN _
  311.             LibSubdirCount = LibSubdirCount + 1 : _
  312.             LibSubdirName$(LibSubdirCount) = _
  313.             LEFT$(Dirrec$,8)
  314.       WEND
  315.       CLOSE 2
  316.       LibLoopCount = 1
  317.       IF LibSubdirCount = 0 THEN _
  318.          GOTO 21156
  319.       ZOutTxt$ = STR$(LibSubdirCount) + _
  320.            " Subdirectories on Library disk - " + _
  321.            ZLibDiskChar$
  322.       CALL QuickTPut1 (ZOutTxt$)
  323.       FOR LibLoopCount = 1 TO LibSubdirCount
  324.          IF NOT ZLocalUser THEN _
  325.             CALL Carrier : _
  326.             IF ZSubParm THEN _
  327.                GOTO 21155
  328.          LibSubdirChar$ = MID$("ABCDEFGHI",LibLoopCount,1)
  329.          ZOutTxt$ = "Creating " + _
  330.               ZLibNodeID$ + _
  331.               "DK" + _
  332.               ZLibDiskChar$ + _
  333. * ------[ first line different ]------
  334.               LibSubdirChar$ + "." + Extension$ + _                  ' KG080401
  335.               " using " + ZLibArcProgram$
  336.          CALL QuickTPut1 (ZOutTxt$)
  337.          CHDIR ChdirLib$ + _
  338.                "\" + _
  339.                LibSubdirName$(LibLoopCount)
  340.          GOSUB 21157
  341.          ZOutTxt$ = "Disk - " + _
  342.               ZLibDiskChar$ + _
  343.               "; Subdirectory" + _
  344.               " -" + _
  345.               STR$(LibLoopCount) + _
  346.               " archived for download"
  347.          CALL QuickTPut1 (ZOutTxt$)
  348.          GOSUB 21158
  349. * REPLACING old line(s) by new
  350. 21610 CALL AllCaps (ZWasZ$)
  351. * ------[ first line different ]------
  352.       ZFF = INSTR(ZDefaultXfer$,ZWasZ$)                              ' KG071903
  353.       IF ZFF > 0 THEN _                                              ' KG071903
  354.          GOTO 21612                                                  ' KG071903
  355.       IF INSTR("H?",ZWasZ$) > 0 THEN _                               ' KG071903
  356.          GOTO 21602                                                  ' KG071903
  357.       GOTO 21600                                                     ' KG071903
  358. * REPLACING old line(s) by new
  359. 35000 ' $SUBTITLE: 'FlushKeys - Completely flush all user input'
  360. ' $PAGE
  361. '
  362. '  NAME    -- FlushKeys
  363. '
  364.       SUB FlushKeys STATIC
  365. * ------[ first line different ]------
  366.       CALL FlushCom (ZWasY$)                                         ' KG071901
  367.       ZLastIndex = 0
  368.       REDIM ZUserIn$(ZMsgDim)
  369.       END SUB
  370. * REPLACING old line(s) by new
  371. 41010 ' $SUBTITLE: 'TimeRemain - calculates time remaining in a session'
  372. ' $PAGE
  373. '
  374. '  NAME    -- TimeRemain
  375. '
  376. '  INPUTS  -- PARAMETER                 MEANING
  377. '             ZUserLogonTime!          WHEN DID THE CALLER GET HERE
  378. '             ZSecsPerSession!         HOW LONG MAY THE CALLER STAY ON
  379. '             ZTimeToDropToDos!        WHEN ARE WE DOING OUR DAILY EVENT
  380. '             ZBypassTimeCheck         DO WE CARE HOW LONG THEY CAN STAY
  381. '
  382. '  OUTPUTS -- PARAMETER                 MEANING
  383. '             MinsRemaining            TIME IN MINUTES LEFT IN SESSION
  384. '             ZSecsUsedSession!        TIME USED IN SECONDS
  385. '
  386.       SUB TimeRemain (MinsRemaining) STATIC
  387.       TOA! = FRE("A")
  388.       IF ZBypassTimeCheck THEN _
  389.          MinsRemaining = ZSecsPerSession! / 60 : _
  390.          EXIT SUB
  391.       CALL CheckTime (ZUserLogonTime!, ZSecsUsedSession!, 2)
  392.       IF ZTimeToDropToDos! = 0 OR _
  393.          ZOldDate$ = DATE$ THEN _
  394.          GOTO 41020
  395.       CALL CheckTime (ZTimeToDropToDos!, HowMuchTimeLeft!, 1)
  396. * ------[ first line different ]------
  397.       IF HowMuchTimeLeft! < 0 THEN _                                 ' ML080801
  398.          HowMuchTimeLeft! = (HowMuchTimeLeft! * -1) + 43200          ' ML080801
  399.       IF (ZSecsPerSession! - ZSecsUsedSession!) > HowMuchTimeLeft! THEN _ ' DA080101
  400.          ZSecsPerSession! = HowMuchTimeLeft! + ZSecsUsedSession! : _ ' DA080101
  401.          IF NOT ToldShort THEN _
  402.             ToldShort = ZTrue : _
  403.             ZOutTxt$ = "Shortened session time to" + _               ' DA080101
  404.                 STR$(INT((ZSecsPerSession! - ZSecsUsedSession!) / 60)) + _ ' DA080101
  405.                 " min for scheduled event" : _                       ' DA080101
  406.             CALL RingCaller
  407. * REPLACING old line(s) by new
  408. * ------[ first line different ]------
  409. 41020 MinsRemaining = INT((ZSecsPerSession! - ZSecsUsedSession!) / 60) ' ML080802
  410.       END SUB
  411. * REPLACING old line(s) by new
  412. 41032 ' $SUBTITLE: 'DispTimeRemain - Display users time remaining'
  413. ' $PAGE
  414. '
  415. '  NAME    -- DispTimeRemain
  416. '
  417. '  INPUTS  --     PARAMETER                    MEANING
  418. '              MinsRemaining
  419. '
  420. '  OUTPUTS --     PARAMETER                    MEANING
  421. '                MinsRemaining               TIME IN MINUTES LEFT IN SESSION
  422. '
  423.       SUB DispTimeRemain (MinsRemaining) STATIC
  424.       CALL TimeRemain (MinsRemaining)
  425. * ------[ first line different ]------
  426.       CALL QuickTPut1 (ZEmphasizeOff$ + STR$(MinsRemaining) + " min left") ' MB052101
  427.       END SUB
  428. * REPLACING old line(s) by new
  429. 43070 ZActiveMessageFile$ = ZOrigMsgFile$
  430.       ZSubParm = 3
  431.       CALL FileLock
  432.       CALL OpenMsg
  433.       FIELD 1, 128 AS ZMsgRec$
  434.       GET 1,ZNodeRecIndex
  435.       IF ZGlobalSysop THEN _
  436.          MID$(ZMsgRec$,1,30) = "SYSOP" + SPACE$(25)
  437.       MID$(ZMsgRec$,40,2) = STR$(ZExitToDoors)
  438.       MID$(ZMsgRec$,42,2) = STR$(ZEightBit)
  439.       MID$(ZMsgRec$,44,2) = STR$(ZBPS)
  440.       MID$(ZMsgRec$,46,2) = STR$(ZUpperCase)
  441. * ------[ first line different ]------
  442.       MID$(ZMsgRec$,48,5) = MKS$(ZNumDnldBytes!) + MID$(STR$(-ZBatchTransfer),2) ' KG022101
  443.       MID$(ZMsgRec$,53,2) = STR$(ZWasGR)
  444.       MID$(ZMsgRec$,55,2) = STR$(ZSysop)
  445.       MID$(ZMsgRec$,65,3) = CHR$(VAL(LEFT$(ZTimeLoggedOn$,2))) + _
  446.                                    CHR$(VAL(MID$(ZTimeLoggedOn$,4,2))) + _
  447.                                    CHR$(VAL(MID$(ZTimeLoggedOn$,7,2)))
  448.       MID$(ZMsgRec$,72,2) = STR$(ZPrivateDoor)
  449.       MID$(ZMsgRec$,74,1) = MID$(STR$(ZTransferFunction),2,1)
  450.       MID$(ZMsgRec$,75,1) = ZWasFT$
  451.       MID$(ZMsgRec$,113,2) = MKI$(CINT(ZTimeCredits!)/60)
  452.       MID$(ZMsgRec$,79,8) = LEFT$(ZDooredTo$+"        ",8)
  453.       MID$(ZMsgRec$,91,2) = STR$(ZReliableMode)
  454.       CALL BreakFileName (ZCurPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZFalse)
  455.       MID$(ZMsgRec$,93,8) = ZUserIn$ + SPACE$(8 - LEN(ZUserIn$))
  456.       IF ZLocalUser THEN _
  457.          ZWasZ$ = ZCarriageReturn$ + ZCarriageReturn$ _              ' KG030601
  458.       ELSE ZWasZ$ = " 0"                                             ' KG030601
  459.       MID$(ZMsgRec$,101,2) = ZWasZ$                                  ' KG030601
  460.       MID$(ZMsgRec$,103,2) = STR$(ZLocalUserMode)                    ' KG030601
  461.       ZConfName$ = LEFT$(ZConfName$,INSTR(ZConfName$ + " "," ") - 1)
  462.       MID$(ZMsgRec$,105,8) = ZConfName$ + SPACE$(8 - LEN(ZConfName$))
  463.       MID$(ZMsgRec$,115,1) = MID$(STR$(ZAutoLogoffReq),2,1)
  464.       MID$(ZMsgRec$,117,2) = STR$(ZMenuIndex)
  465.       MID$(ZMsgRec$,119,2) = LEFT$(DATE$,2)
  466.       MID$(ZMsgRec$,121,2) = MID$(DATE$,4,2)
  467.       MID$(ZMsgRec$,123,2) = RIGHT$(DATE$,2)
  468.       MID$(ZMsgRec$,125,2) = LEFT$(TIME$,2)
  469.       MID$(ZMsgRec$,127,2) = MID$(TIME$,4,2)
  470. ' ***   Save additional parameters for door restoral
  471.       CALL OpenOutW (ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
  472.       CALL PrintWorkA (STR$(ZLimitMinsPerSession))
  473.       CALL PrintWorkA (ZWasNG$)                                      ' KG052701
  474.       CALL PrintWorkA (ZIndivValue$)                                 ' NC050901
  475.       CALL PrintWorkA (ZOrigDateTimeOn$)                             ' KG070601
  476.       CALL PrintWorkA (ZOrigTimeLoggedOn$)                           ' KG070601
  477.       CLOSE 2
  478. * REPLACING old line(s) by new
  479. 44000 ' $SUBTITLE: 'ReadProf - subroutine to restore a user profile'
  480. ' $PAGE
  481. '
  482. '  NAME    -- ReadProf
  483. '
  484. '  INPUTS  --     PARAMETER                    MEANING
  485. '              ZNodeRecIndex               NODE RECORD TO USE
  486. '              ZSysopPswd1$               Sysop'S PSEUDONYM 1
  487. '              ZSysopPswd2$               Sysop'S PSEUDONYM 2
  488. '
  489. '  OUTPUTS -- USER'S OPTIONS AND COMMUNICATIONS PARAMETERS
  490. '             UPON EXITING RBBS-PC TO A "DOOR"
  491. '
  492. '  PURPOSE -- Reset a user's options and communications parameters
  493. '             that were saved in the node record when a user exited
  494. '             to a "door" so that he is in the same status as when
  495. '             he exited.
  496. '
  497.       SUB ReadProf STATIC
  498.       FIELD 1, 128 AS ZMsgRec$
  499.       GET 1,ZNodeRecIndex
  500.       ZReliableMode = VAL(MID$(ZMsgRec$,91,2))
  501.       MID$(ZMsgRec$,40,2) = "00"
  502.       ZEightBit = VAL(MID$(ZMsgRec$,42,2))
  503.       ZBPS = VAL(MID$(ZMsgRec$,44,2))
  504.       CALL CommInfo
  505.       ZBaudTest! = VAL(MID$(ZBaudRates$,(-5 * ZBPS),5))
  506.       ZUpperCase = VAL(MID$(ZMsgRec$,46,2))
  507. * ------[ first line different ]------
  508.       ZNumDnldBytes! = CVS(MID$(ZMsgRec$,48,4))                      ' KG022101
  509.       ZBatchTransfer = (MID$(ZMsgRec$,52,1) = "1")
  510.       ZWasGR = VAL(MID$(ZMsgRec$,53,2))
  511.       HourLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,65,1))),2),2)
  512.       MinLoggedOn$  = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,66,1))),2),2)
  513.       SecLoggedOn$  = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,67,1))),2),2)
  514.       ZTimeLoggedOn$ = HourLoggedOn$ + _
  515.                         ":" + _
  516.                         MinLoggedOn$ + _
  517.                         ":" + _
  518.                         SecLoggedOn$
  519.       ZTransferFunction = VAL(MID$(ZMsgRec$,74,1))
  520.       ZWasFT$ = MID$(ZMsgRec$,75,1)
  521.       ZTimeCredits! = 60!*CVI(MID$(ZMsgRec$,113,2))                  ' KKG030901
  522.       ZDooredTo$ = MID$(ZMsgRec$,79,8)
  523.       CALL Trim (ZDooredTo$)
  524.       IF ZExitToDoors AND ZDooredTo$ <> "" THEN _
  525.          CALL OpenWork (2,ZDoorsDef$) : _
  526.          IF ZErrCode = 0 THEN _
  527.             CALL ReadParms (ZOutTxt$(),8,1) : _
  528.             WHILE ZErrCode = 0 AND ZOutTxt$(1) <> ZDooredTo$ : _
  529.                CALL ReadParms (ZOutTxt$(),8,1) : _
  530.             WEND : _
  531.             IF ZOutTxt$(1) = ZDooredTo$ THEN _
  532.                ZDoorSkipsPswd = (ZOutTxt$(6) <> "Y")                 ' ML082001
  533.       ZErrCode = 0
  534.       ZMenuIndex = VAL(MID$(ZMsgRec$,117,2))
  535.       ZCurPUI$ = MID$(ZMsgRec$,93,8)
  536.       CALL Remove (ZCurPUI$," ")
  537.       IF ZCurPUI$ <> "" THEN _
  538.          CALL BreakFileName (ZMainPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZTrue) : _
  539.          ZCurPUI$ = ZOutTxt$ + ZCurPUI$ + ZWasZ$
  540.       ZCustomPUI = (ZCurPUI$ <> "")
  541.       ZLocalUser = (MID$(ZMsgRec$,101,2) = ZCarriageReturn$ + ZCarriageReturn$) ' KG030601
  542.       ZLocalUserMode = VAL(MID$(ZMsgRec$,103,2))
  543.       ZHomeConf$ = MID$(ZMsgRec$,105,8)
  544.       ZAutoLogoffReq = (VAL(MID$(ZMsgRec$,115,1)) <> 0)
  545.       CALL Trim (ZHomeConf$)
  546.       IF ZRequiredRings > 0 AND _
  547.          INSTR(ZModemInitCmd$,"S0=255") THEN _
  548.          COLOR 7,0,0 _
  549.       ELSE COLOR ZFG,ZBG,ZBorder
  550.       IF ZLocalUserMode THEN _
  551.          GOTO 44003
  552.       CALL SetBaud
  553. * REPLACING old line(s) by new
  554. * ------[ first line different ]------
  555. 44003 ZUserLogonTime! = VAL(HourLoggedOn$) * 3600! + _               ' KK030901
  556.                         VAL(MinLoggedOn$) * 60! + _                  ' KK030901
  557.                         VAL(SecLoggedOn$)
  558.       HourLoggedOn$ = ""
  559.       MinLoggedOn$ = ""
  560.       SecLoggedOn$ = ""
  561.       IF ZMinsPerSession < 1 THEN _
  562.          ZMinsPerSession = 3
  563.       IF NOT ZEightBit THEN _
  564.          OUT ZLineCntlReg,&H1A
  565.       IF LEFT$(ZMsgRec$,7) = "SYSOP  " THEN _
  566.          ZFirstName$ = ZSysopPswd1$ : _
  567.          ZActiveUserName$ = ZSysopPswd1$ + " " + ZSysopPswd2$ _
  568.       ELSE ZFirstNameEnd = INSTR(ZMsgRec$," ") : _
  569.            ZLastNameEnd = INSTR(ZFirstNameEnd + 1,ZMsgRec$ + " ","  ") : _
  570.            ZFirstName$ = LEFT$(ZMsgRec$,ZFirstNameEnd-1) : _
  571.            ZLastName$ = MID$(ZMsgRec$,ZFirstNameEnd + 1,ZLastNameEnd - (ZFirstNameEnd + 1)) : _
  572.            ZActiveUserName$ = MID$(ZFirstName$ + " " + ZLastName$,1,31)
  573.       ZWasZ$ = ZFirstName$
  574.       CALL OpenWork (2,ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
  575.       CALL ReadDir (2,1)
  576.       ZLimitMinsPerSession = VAL (ZOutTxt$)
  577.       CALL ReadDir (2,1)                                             ' KG052701
  578.       ZWasNG$ = ZOutTxt$                                             ' KG052701
  579.       CALL ReadDir (2,1)                                             ' RC050901
  580.       ZIndivValue$ = ZOutTxt$                                        ' RC050901
  581.       CALL ReadDir (2,1)                                             ' KG070601
  582.       ZOrigDateTimeOn$ = ZOutTxt$                                    ' KG070601
  583.       CALL ReadDir (2,1)                                             ' KG070601
  584.       ZOrigTimeLoggedOn$ = ZOutTxt$                                  ' KG070601
  585.       CLOSE 2
  586.       END SUB
  587. * REPLACING old line(s) by new
  588. 58050 ' $SUBTITLE: 'AllCaps - sub to convert string to upper case'
  589. ' $PAGE
  590. '
  591. '  NAME    -- AllCaps
  592. '
  593. '  INPUTS  --     PARAMETER           MEANING
  594. '              ConvertField$    STRING TO MAKE UPPER CASE
  595. '
  596. '  OUTPUTS --  ConvertField$    CONVERTED STRINGS
  597. '
  598. '  PURPOSE -- Subroutine to convert a string to upper case
  599. '
  600.       SUB AllCaps (ConvertField$) STATIC
  601.       IF ZTurboRBBS THEN _
  602.          CALL RBBSULC (ConvertField$) : _
  603.          EXIT SUB
  604.       FOR WasZ = 1 TO LEN(ConvertField$)
  605. * ------[ first line different ]------
  606.          WasX = ASC(MID$(ConvertField$,WasZ,1))                      ' KG072601
  607.          IF WasX > 96 THEN IF WasX < 123 THEN _                      ' KG072601
  608.             MID$(ConvertField$,WasZ,1) = CHR$(WasX AND 223)          ' KG072601
  609.       NEXT
  610.       END SUB
  611. * REPLACING old line(s) by new
  612. 58110 ' $SUBTITLE: 'CheckNewBul - sub to check whether got new bulletins'
  613. ' $PAGE
  614. '
  615. '  NAME    -- CheckNewBul
  616. '
  617. '  INPUTS  --     PARAMETER           MEANING
  618. '                 LastOn$             Last DATE OF LOGON
  619. '                                   FORMAT MM/DD/YY
  620. '                 ZActiveBulletins  # OF BULLETING
  621. '                 ZBulletinPrefix$  FILESPEC FOR BULLETINS
  622. '
  623. '  OUTPUTS --     NumNewBullets   NUMBER OF NEW BULLETINS
  624. '                 NewBullets$      LIST OF NEW BULLET #'S
  625. '                 ZWasQ            WHERE Last BULLETIN STORED
  626. '                                  IN ZUserIn$()
  627. '                 ZUserIn$()       BULLETINS #'S THAT ARE NEW
  628. '                                    (2,3,4,...)
  629. '
  630. '  PURPOSE -- Checks how many bulletins have system date
  631. '             at or later than date caller last logged on
  632. '
  633.       SUB CheckNewBul (LastOn$,NumNewBullets,NewBullets$) STATIC
  634.       IF ZExitToDoors OR ZBulletinPrefix$ = ZPrevPrefix$ THEN _
  635.          EXIT SUB
  636.       ZPrevPrefix$ = ZBulletinPrefix$
  637.       NumNewBullets = 0
  638.       NewBullets$ = ":  "
  639.       BaseDate# = VAL(MID$(LastOn$,4,2)) + (100 * VAL(MID$(LastOn$,1,2))) + _
  640.                    (10000# * (1900 + VAL(MID$(LastOn$,7,2))))
  641.       CALL FindIt (ZBulletinPrefix$ + ".FCK")
  642.       WasX = 0
  643.       CALL QuickTPut ("Checking new bulletins",0)
  644.       IF ZOK THEN _
  645.          WHILE NOT EOF(2) : _
  646.             LINE INPUT #2,WasBN$ : _
  647.             GOSUB 58112 : _
  648.          WEND _
  649.       ELSE FOR WasI = 1 TO ZActiveBulletins : _
  650.               WasBN$ = MID$(STR$(WasI),2) : _
  651.               GOSUB 58112 : _
  652.            NEXT
  653.       ZWasQ = NumNewBullets + 1
  654.       IF NumNewBullets < 1 THEN _
  655.          NewBullets$ = ""
  656.       CALL SkipLine (1)
  657.       ZOutTxt$ = STR$(NumNewBullets) + _
  658. * ------[ first line different ]------
  659.            " New bulletin(s) since last call" + _                    ' DA071701
  660.            NewBullets$
  661.       CALL QuickTPut1 (ZOutTxt$)
  662.       EXIT SUB
  663. * REPLACING old line(s) by new
  664. 58140 ' $SUBTITLE: 'LoadNew - subroutine to get latest uploads'
  665. ' $PAGE
  666. '
  667. '  NAME    -- LoadNew
  668. '
  669. '  INPUTS  --     PARAMETER           MEANING
  670. '               ZUpldDir$             LIST OF FILES UPLOADED
  671. '
  672. '  OUTPUTS --   ZOutTxt$              LATEST UPLOADS
  673. '
  674. '  PURPOSE -- Loads table of most recent number of uploads by date
  675. '
  676.       SUB LoadNew (Ara(2)) STATIC
  677.       IF ZFMSDirectory$ = "" THEN _
  678.          EXIT SUB
  679.       ZPrevBase$ = ""
  680. * ------[ first line different ]------
  681.       FirstWarning = ZTrue                                           ' KG041103
  682.       IF PrevLoadNew$ = ZFMSDirectory$ THEN _
  683.          Ara(1,1) = 0 : _
  684.          EXIT SUB
  685.       PrevLoadNew$ = ZFMSDirectory$
  686.       CALL OpenFMS (LastRec)
  687.       FIELD 2, 23 AS PreDate$, _
  688.                 2 AS WasMM$, _
  689.                 1 AS Fill1$, _
  690.                 2 AS WasDD$, _
  691.                 1 AS Fill2$, _
  692.                 2 AS Year$, _
  693.                 (2 + ZMaxDescLen) AS Desc$, _                        ' KG071001
  694.                 3 AS Category$, _
  695.                 2 AS Fill4$
  696.       MaxRecs = UBOUND(Ara,1)
  697.       IF MaxRecs < 1 THEN _
  698.          MaxRecs = 1 _
  699.       ELSE IF MaxRecs > 23 THEN _
  700.               MaxRecs = 23
  701.       WasL = 0
  702.       WasK = LastRec
  703.       WHILE WasK > 0 AND WasL < MaxRecs
  704.          GET #2,WasK
  705.          IF INSTR("\ ",LEFT$(PreDate$,1)) > 0 THEN _                 ' KG071001
  706.             GOTO 58142
  707.          IF (ZCanDnldFromUp OR Category$ <> ZDefaultCatCode$) THEN _
  708.             IF VAL(Year$) > 79 THEN _                                ' KG041103
  709.                WasL = WasL + 1 : _                                   ' KG041103
  710.                Ara(WasL,1) = 372! * (VAL(Year$) - 80!) + 31! * VAL(WasMM$) + VAL(WasDD$) _' KK030901
  711.             ELSE IF FirstWarning THEN _                              ' KG041103
  712.                     FirstWarning = ZFalse : _                        ' KG041103
  713.                     ZWasZ$ = "Invalid FMS format " + ZFMSDirectory$ : _ ' KG041103
  714.                     CALL PScrn (ZWasZ$) : _                          ' KG041103
  715.                     CALL UpdtCalr (ZWasZ$,2)                         ' KG041103
  716.          IF NOT ZCanDnldFromUp THEN _
  717.             WasX = ZMinSecToView _
  718.          ELSE IF Category$ = "***" THEN _
  719.                  WasX = ZSysopSecLevel _
  720.               ELSE IF Category$ = ZDefaultCatCode$ THEN _
  721.                       WasX = ZMinSecToView _
  722.               ELSE IF LEFT$(PreDate$,1) = "=" THEN _                 ' KG071001
  723.                       CALL CheckInt (Desc$) : _                      ' KG071001
  724.                       WasX = ZTestedIntValue _                       ' KG071001
  725.               ELSE WasX = ZOptSec(19)                                ' KG071001
  726.          Ara(WasL,2) = WasX
  727. * REPLACING old line(s) by new
  728. 58150 ' $SUBTITLE: 'CountNewFiles - sub to count how many files new'
  729. ' $PAGE
  730. '
  731. '  NAME    -- CountNewFiles
  732. '
  733. '  INPUTS  --     PARAMETER           MEANING
  734. '                  LastOn$          Date of last logon
  735. '                  UPLDS$            Latest uploads
  736. '
  737. '  OUTPUTS --    NumNewFiles       How many after last logon
  738. '                RptPrefix$         Set to "At least " if
  739. '                                    above is a minimum
  740. '
  741. '  PURPOSE -- Checks how many files in UPLDS$ were uploaded on or
  742. '             after date of last logon that the user can download
  743. '
  744.       SUB CountNewFiles (LastOn$,Upld(2),NumUserFiles,RptPrefix$) STATIC
  745.       BaseDate = 372 * (VAL(MID$(LastOn$,7,2)) - 80) + _
  746.                   31 * (VAL(MID$(LastOn$,1,2))) + _
  747.                   VAL(MID$(LastOn$,4,2))
  748.       NumNewFiles = 1
  749.       NumUserFiles = 0
  750.       WHILE (BaseDate <= Upld(NumNewFiles,1) AND _
  751.                 Upld(NumNewFiles,1) > 0 AND _
  752.                 NumNewFiles < UBOUND(Upld,1))
  753.          IF ZUserSecLevel => Upld(NumNewFiles,2) THEN _
  754.             NumUserFiles = NumUserFiles + 1
  755.          NumNewFiles = NumNewFiles + 1
  756.       WEND
  757.       IF Upld(NumNewFiles,1) < 1 THEN _
  758.          NumNewFiles = NumNewFiles - 1
  759.       IF BaseDate <= Upld(NumNewFiles,1) THEN _
  760. * ------[ first line different ]------
  761.          RptPrefix$ = "At least" _                                   ' KG072701
  762.       ELSE RptPrefix$ = ""
  763.       END SUB
  764. * REPLACING old line(s) by new
  765. 58165 ' $SUBTITLE: 'DispUpDir - sub to display upload direcotry'
  766. ' $PAGE
  767. '
  768. '  NAME    -- DispUpDir
  769. '
  770. '  INPUTS  -- PARAMETER             MEANING
  771. '             PassedCats$         FILE "CATEGORIES" TO BE INCLUDED IN
  772. '                                 THE SEARCH.
  773. '             SearchString$       STRING TO SEARCH ON WITHIN THE
  774. '                                 FILE "CATEGORIES" SELECTED
  775. '             SearchDate$         DATE EQUAL TO OR GREATER THAN TO BE
  776. '                                 SEARCHED FOR WITH THE "CATEGORIES"
  777. '                                 AND THE STRING TO SEARCH.
  778. '             DnldFlag            SET TO RECORD # OF LINE TO BEGIN
  779. '                                 VIEWING - 0 IF AT END
  780. '
  781. '  OUTPUTS -- DnldFlag            WHENEVER DOWNLOAD REQUESTED, SETS
  782. '                                 TO NEXT RECORD TO VIEW.  OTHERWISE
  783. '                                 LEAVES AT ZERO
  784. '  PURPOSE -- Display the files that meet the criteria selected in
  785. '             RBBS-PC upload management system on the users screen.
  786. '
  787.       SUB DispUpDir (PassedCats$,SearchString$, _
  788.                     SearchDate$,DnldFlag,AbortIndex) STATIC
  789.       CALL AllCaps (SearchString$)
  790.       Blank$ = " "
  791.       ZStopInterrupts = ZFalse
  792.       ZLastIndex = 0
  793.       Categories$ = "," + _
  794.                     PassedCats$ + _
  795.                     ","
  796.       CanDnld = (ZUserSecLevel => ZOptSec(19))
  797. * ------[ first line different ]------
  798.       CanView = (ZUserSecLevel => ZOptSec(26))                       ' KG082001
  799.       ZJumpSupported = ZTrue
  800.       ZJumpSearching = ZFalse
  801.       GOSUB 58185
  802.       IF DnldFlag > 0 THEN _
  803.          UpldIndex = DnldFlag : _
  804.          DnldFlag = 0 : _
  805.          GOTO 58180
  806.       ZJumpLast$ = ""
  807.       SearchFor$ = SearchString$
  808.       ExtraPrompt$ = LEFT$(",V)iew",-(6+4*ZExpertUser)*CanView)      ' KG082001
  809.       IF CanDnld THEN _
  810.          IF ZTurboKeyUser THEN _
  811.             ExtraPrompt$ = ExtraPrompt$ + ",D)ownload" _
  812.          ELSE ExtraPrompt$ = ExtraPrompt$ + ", file(s) to dwnld"
  813.       MaxPrint = ZPageLength - 1
  814.       BelowMinSec = (ZUserSecLevel < ZMinSecToView)
  815.       ZNonStop = ZNonStop OR (ZPageLength < 1)
  816.       FMSCheckPoint = 0
  817.       WildSearch = (INSTR(SearchString$,"?") > 0) _
  818.                      OR (INSTR(SearchString$,"*") > 0)
  819. * REPLACING old line(s) by new
  820. 58169 CALL CheckInt (MID$(PartToPrint$,34))
  821.       IF ZUserSecLevel < ZTestedIntValue THEN _
  822.          LastOK = ZFalse : _
  823. * ------[ first line different ]------
  824.          FailedSearch = ZFalse : _                                   ' DA042401
  825.          GOTO 58168
  826.       MID$(PartToPrint$,1,13) = MID$(PartToPrint$,2,12) + " "
  827.       ZWasA = LEN(STR$(ZTestedIntValue))
  828.       MID$(PartToPrint$,34) = MID$(PartToPrint$,34 + ZWasA) + SPACE$(ZWasA)
  829.       GOTO 58172
  830. * REPLACING old line(s) by new
  831. * ------[ first line different ]------
  832. 58178 IF ZLinesPrinted <= MaxPrint AND (FMSCheckPoint MOD 1000 <> 0) THEN _  ' DA071803
  833.          GOTO 58168
  834.       CALL CheckCarrier
  835.       IF ZSubParm = -1 THEN _
  836.          GOTO 58183
  837.       CALL TimeRemain (MinsRemaining)
  838.       IF MinsRemaining <= 0 THEN _
  839.          ZSubParm = -1 : _
  840.          GOTO 58183
  841.       IF ZNonStop THEN _
  842.          GOTO 58168
  843.       IF ZLinesPrinted <= MaxPrint THEN _
  844.          IF ZDateOrderedFMS THEN _                                   ' DA071803
  845.             CALL QuickTPut1 (ZEmphasizeOff$ + _                      ' DA071803
  846.                "Files checked thru " + MID$(PartToPrint$,24,8)) _    ' DA071803
  847.          ELSE _                                                      ' DA071803
  848.             CALL QuickTPut1 (ZEmphasizeOff$ + STR$(FMSCheckPoint) + _  ' DA071803
  849.                " files checked")                                     ' DA071803
  850. * REPLACING old line(s) by new
  851. 58180 ZTurboKey = -ZTurboKeyUser
  852.       ZStackC = ZTrue
  853.       CALL AskMore (ExtraPrompt$, ZTrue, ZFalse,AbortIndex,ZFalse)
  854.       IF ZSubParm = -1 THEN _
  855.          GOTO 58183
  856.       IF ZNo THEN _
  857.          GOTO 58183
  858.       CALL AllCaps (ZUserIn$(1))
  859. * ------[ first line different ]------
  860.       IF ZUserIn$(1) = "V" THEN IF CanView THEN _                    ' KG082001
  861.          ZLastIndex = ZWasQ : _
  862.          ZAnsIndex = 1 : _
  863.          CALL GetArc : _
  864.          ZJumpSupported = ZTrue : _                                  ' KG022201
  865.          ZWasA = UpldIndex : _
  866.          GOSUB 58185 : _
  867.          UpldIndex = ZWasA : _
  868.          GOTO 58180
  869.       IF ZUserIn$(1) = "D" THEN IF CanDwld THEN _                    ' KG082001
  870.          ZOutTxt$ = "Download what file(s)" : _
  871.          ZStackC = ZTrue : _
  872.          CALL PopCmdStack : _
  873.          IF ZWasQ = 0 THEN _
  874.             GOTO 58180
  875.       IF ZJumpSearching THEN _
  876.          PrevSearch$ = SearchFor$ : _
  877.          SearchFor$ = ZJumpTo$ _
  878.       ELSE SearchFor$ = SearchString$ : _
  879.            IF LEN(ZUserIn$(1)) > 1 THEN _
  880.            IF NOT ZYes AND CanDnld THEN _
  881.               CALL SkipLine (1) : _
  882.               DnldFlag = UpldIndex : _
  883.               ZLastIndex = ZWasQ : _
  884.               ZAnsIndex = 1 : _
  885.               EXIT SUB
  886.       IF ZNonStop THEN IF UpldIndex > 999 THEN _
  887.          IF (SearchDate$ = "" OR NOT ZExpertUser) THEN _
  888.             ZOutTxt$ = STR$(UpldIndex) + _
  889.                " lines left to search.  Really go non-stop? (Y/[N])" : _
  890.             ZNoAdvance = ZTrue : _
  891.             ZTurboKey = -ZTurboKeyUser : _
  892.             ZSubParm = 1 : _
  893.             CALL TGet : _
  894.             CALL WipeLine (79) : _
  895.             ZNonStop = ZYes                                          ' DA071803
  896.       GOTO 58168
  897. * REPLACING old line(s) by new
  898. 58183 CLOSE 2
  899.       ZNonStop = (ZPageLength < 1)
  900.       ZStopInterrupts = ZFalse
  901.       ZOutTxt$ = ""
  902. * ------[ first line different ]------
  903.       ZActiveFMSDir$ = ""                                            ' KG031801
  904.       ZJumpSupported = ZFalse
  905.       EXIT SUB
  906.